 program mmm;
   var
    A:array [7] of string;
    C:array [7] of string;
    b,pom1,pom2:char;
    shifr:string;
    str1,str2,sto1,sto2:integer;
    k,m,mm,Newm:integer;
    p,prov:integer;
    st2,helpstr:string;
    Hchar1,Hchar2:char;
    Hstr1,Hstr2:string;
   begin

/************************************************************/
   A[1]:='ч вып'; A[2]:='ок:ду'; A[3]:='гшзэф'; A[4]:='лъха,';
   A[5]:='юржщн'; A[6]:='цбить'; A[7]:='.сяме'; 
     
   C[1]:='елц:п'; C[2]:='.хъан'; C[3]:='шдэкс'; C[4]:='ы бфу';
   C[5]:='ятичг'; C[6]:='мо,жь'; C[7]:='вщзюр'; 
   Clear;
   writeln('Если Вы хотите зашифровать сообщение нажмите  "s".');
   writeln('Если Вы хотите расшифровать сообщение нажмите "d".');
   writeln('Выход - любая другая клавиша.');
   pom1:='s';pom2:='d';
   read(b);
   if b=pom1  then
    begin
     writeln('Введите сообщение для зашифровки :');
     read(st2);
     p:=length(st2);
     prov:=p//2;  /* остаток от деления*/

     if prov<>0 then 
      begin
       helpstr:=' ';
       ins(helpstr,st2,p+1); /* пробел - до четности*/
      end;     
     shifr:=' '; Newm:=1;
     for mm:=1 to length(st2)/2 do
      begin
       for k:=1 to 7 do
        begin
         for m:=1 to 5 do
          begin
           Hchar1:=st2[Newm]; Hchar2:=A[k][m];
           if Hchar1 = Hchar2 then
             begin
              str1:=k;
              sto1:=m;
             end;
          end;
        end;
       for k:=1 to 7 do
        begin
         for m:=1 to 5 do
          begin
           Hchar1:=st2[Newm+1]; Hchar2:=C[k][m];
           if Hchar1 = Hchar2 then
            begin
             str2:=k;
             sto2:=m;
            end;
          end;
        end;
       
       if str1 <> str2 then
        begin
         Hstr1:=C[str1][sto2];
         p:=length(shifr);
         ins(Hstr1,shifr,p);
         Hstr2:=A[str2][sto1];
         p:=length(shifr);
         ins(Hstr2,shifr,p);
        end;
       else
        begin
         Hstr1:=C[str1][sto1];
         p:=length(shifr);
         ins(Hstr1,shifr,p);
         Hstr2:=A[str2][sto2];
         p:=length(shifr);
         ins(Hstr2,shifr,p);
       end;
       Newm:=Newm+2;
     
      end; /*FOR*/
    
      writeln('Зашифрованное сообщение :');
      write(shifr);
   end;/*IF*/ 
/*--------------------------------------------------------------*/   
   if b=pom2  then
    begin
     writeln('Введите сообщение для расшифровки :');
     read(st2);
     p:=length(st2);
     prov:=p//2;  /* остаток от деления*/
     if prov<>0 then 
      begin
       helpstr:=' ';
       ins(helpstr,st2,p+1); /* пробел - до четности*/
      end;     
     shifr:=' ';  

     Newm:=1;
     for mm:=1 to length(st2)/2 do
      begin
       for k:=1 to 7 do
        begin
         for m:=1 to 5 do
          begin
           Hchar1:=st2[Newm];
           
           Hchar2:=C[k][m];
        if Hchar1 = Hchar2 then
                           begin
                            str1:=k;
                            sto1:=m;
                           end;
          end;
        end;
       for k:=1 to 7 do
        begin
         for m:=1 to 5 do
          begin
           Hchar1:=st2[Newm+1];
           Hchar2:=A[k][m];
           if Hchar1 = Hchar2 then
                           begin
                            str2:=k;
                            sto2:=m;
                           end;
          end;
        end;
       if str1 <> str2 then
        begin
         Hstr1:=A[str1][sto2];
         p:=length(shifr);
         ins(Hstr1,shifr,p);
         Hstr2:=C[str2][sto1];
         p:=length(shifr);
         ins(Hstr2,shifr,p);
        end;
       else
        begin
         Hstr1:=A[str1][sto1];
         p:=length(shifr);
         ins(Hstr1,shifr,p);
         Hstr2:=C[str2][sto2];
         p:=length(shifr);
         ins(Hstr2,shifr,p);
       end;
       Newm:=Newm+2;
     
      end; /*FOR*/
    
      writeln('Расшифрованное сообщение :');
      write(shifr);
   end;/*IF*/ 
  press;
end.
